// 定义包路径，用于组织Java类的命名空间
package com.itheima.demo;

// 导入Scanner类，用于从键盘获取用户输入
import java.util.Scanner;

// 定义一个名为Test1的公开类，用于实现简易计算器功能
public class Test1 {
    // 定义主方法，Java程序的入口点
    public static void main(String[] args) {
        // 目标：简易版计算器开发
        // 1、键盘录入两个数字和运算符
        // 创建Scanner对象，用于从标准输入（键盘）读取数据
        Scanner sc = new Scanner(System.in);
        // 输出提示信息，让用户输入第一个数字
        System.out.println("请输入第一个数字:");
        // 从键盘读取用户输入的第一个double类型的数字并存储到num1变量
        double num1 = sc.nextDouble();

        // 输出提示信息，让用户输入第二个数字
        System.out.println("请输入第二个数字:");
        // 从键盘读取用户输入的第二个double类型的数字并存储到num2变量
        double num2 = sc.nextDouble();

        // 输出提示信息，让用户输入运算符
        System.out.println("请输入运算符(+, -, *, /):");
        // 从键盘读取用户输入的运算符字符串并存储到operator变量
        String operator = sc.next(); // 例如："+"

        // 2、调用calc方法进行计算，将结果存储到result变量
        double result = calc(num1, num2, operator);
        // 输出计算结果
        System.out.println("计算结果是：" + result);
    }

    // 定义calc方法，用于根据运算符对两个数字进行计算
    // 参数：num1(第一个数字)、num2(第二个数字)、operator(运算符)
    // 返回值：计算结果(double类型)
    public static double calc(double num1, double num2, String operator) {
        // 定义result变量用于存储计算结果，初始值为0
        double result = 0; // 定义一个double类型的变量记录本次运算的结果，方便返回
        
        // 使用switch语句根据不同的运算符执行相应的计算
        switch (operator) {
            // 当运算符是加号时，执行加法运算
            case "+":
                // 将两个数字相加的结果赋值给result变量
                result = num1 + num2;
                // 跳出switch语句，防止穿透到下一个case
                break;
            // 当运算符是减号时，执行减法运算
            case "-":
                // 将第一个数字减去第二个数字的结果赋值给result变量
                result = num1 - num2;
                // 跳出switch语句
                break;
            // 当运算符是乘号时，执行乘法运算
            case "*":
                // 将两个数字相乘的结果赋值给result变量
                result = num1 * num2;
                // 跳出switch语句
                break;
            // 当运算符是除号时，执行除法运算
            case "/":
                // 将第一个数字除以第二个数字的结果赋值给result变量
                result = num1 / num2;
                // 跳出switch语句
                break;
            // 当运算符不是上述四种时，执行默认操作
            default:
                // 输出错误提示信息
                System.out.println("运算符有误，请重新输入");
        }
        
        // 返回计算结果
        return result;
    }
}
